From 1cb44cc20fcec7f1d3a6fb3febcae24e2c4cb9d3 Mon Sep 17 00:00:00 2001 From: Debian Haskell Group Date: Sat, 24 Jan 2026 14:41:42 +0200 Subject: [PATCH] hppa-sparc64-support =================================================================== Gbp-Pq: Name hppa-sparc64-support.patch --- compiler/GHC/CmmToC.hs | 1 + libraries/ghc-platform/src/GHC/Platform/ArchOS.hs | 4 ++++ m4/fptools_set_haskell_platform_vars.m4 | 8 +++++++- utils/ghc-toolchain/src/GHC/Toolchain/ParseTriple.hs | 3 ++- 4 files changed, 14 insertions(+), 2 deletions(-) diff --git a/compiler/GHC/CmmToC.hs b/compiler/GHC/CmmToC.hs index 7881350f..0fdb2651 100644 --- a/compiler/GHC/CmmToC.hs +++ b/compiler/GHC/CmmToC.hs @@ -1350,6 +1350,7 @@ cLoad platform expr rep bewareLoadStoreAlignment ArchMipsel = True bewareLoadStoreAlignment (ArchARM {}) = True bewareLoadStoreAlignment ArchAArch64 = True + bewareLoadStoreAlignment ArchSPARC64 = True -- Pessimistically assume that they will also cause problems -- on unknown arches bewareLoadStoreAlignment ArchUnknown = True diff --git a/libraries/ghc-platform/src/GHC/Platform/ArchOS.hs b/libraries/ghc-platform/src/GHC/Platform/ArchOS.hs index 0782a2a1..fd25a739 100644 --- a/libraries/ghc-platform/src/GHC/Platform/ArchOS.hs +++ b/libraries/ghc-platform/src/GHC/Platform/ArchOS.hs @@ -42,9 +42,11 @@ data Arch | ArchARM ArmISA [ArmISAExt] ArmABI | ArchAArch64 | ArchAlpha + | ArchHPPA | ArchMipseb | ArchMipsel | ArchRISCV64 + | ArchSPARC64 | ArchLoongArch64 | ArchJavaScript | ArchWasm32 @@ -134,10 +136,12 @@ stringEncodeArch = \case ArchARM ARMv7 _ _ -> "armv7" ArchAArch64 -> "aarch64" ArchAlpha -> "alpha" + ArchHPPA -> "hppa" ArchMipseb -> "mipseb" ArchMipsel -> "mipsel" ArchRISCV64 -> "riscv64" ArchLoongArch64 -> "loongarch64" + ArchSPARC64 -> "sparc64" ArchJavaScript -> "javascript" ArchWasm32 -> "wasm32" diff --git a/m4/fptools_set_haskell_platform_vars.m4 b/m4/fptools_set_haskell_platform_vars.m4 index 8cc721d7..827c5fe5 100644 --- a/m4/fptools_set_haskell_platform_vars.m4 +++ b/m4/fptools_set_haskell_platform_vars.m4 @@ -33,6 +33,9 @@ AC_DEFUN([FPTOOLS_SET_HASKELL_PLATFORM_VARS_SHELL_FUNCTIONS], alpha) test -z "[$]2" || eval "[$]2=ArchAlpha" ;; + hppa|hppa1_1) + test -z "[$]2" || eval "[$]2=ArchHPPA" + ;; mips|mipseb) test -z "[$]2" || eval "[$]2=ArchMipseb" ;; @@ -48,7 +51,10 @@ AC_DEFUN([FPTOOLS_SET_HASKELL_PLATFORM_VARS_SHELL_FUNCTIONS], loongarch64) test -z "[$]2" || eval "[$]2=ArchLoongArch64" ;; - hppa|hppa1_1|ia64|m68k|nios2|riscv32|loongarch32|rs6000|s390|sh4|sparc|sparc64|vax) + sparc64) + test -z "[$]2" || eval "[$]2=ArchSPARC64" + ;; + ia64|m68k|nios2|riscv32|loongarch32|rs6000|s390|sh4|sparc|vax) test -z "[$]2" || eval "[$]2=ArchUnknown" ;; javascript) diff --git a/utils/ghc-toolchain/src/GHC/Toolchain/ParseTriple.hs b/utils/ghc-toolchain/src/GHC/Toolchain/ParseTriple.hs index 17fee020..642de448 100644 --- a/utils/ghc-toolchain/src/GHC/Toolchain/ParseTriple.hs +++ b/utils/ghc-toolchain/src/GHC/Toolchain/ParseTriple.hs @@ -51,10 +51,11 @@ parseArch cc arch = "mipseb" -> pure ArchMipseb "mipsel" -> pure ArchMipsel "riscv64" -> pure ArchRISCV64 - "hppa" -> pure ArchUnknown + "hppa" -> pure ArchHPPA "wasm32" -> pure ArchWasm32 "javascript" -> pure ArchJavaScript "loongarch64" -> pure ArchLoongArch64 + "sparc64" -> pure ArchSPARC64 _ -> throwE $ "Unknown architecture " ++ arch parseOs :: String -> M OS -- 2.30.2